Opaque Type
型の内部実装を隠蔽し、型生成関数のみを公開する
型システムの話ではなく、型利用の話
mrsekut.icon
運用というか、デザインパターンを指した用語だと思う
mrsekut.icon
Elm
https://qiita.com/arowM/items/54fd76ee3965ddc86455
https://package.elm-lang.org/help/design-guidelines#keep-tags-and-record-constructors-secret
https://ckoster22.medium.com/advanced-types-in-elm-opaque-types-ec5ec3b84ed2
Swift
https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html
https://qiita.com/omochimetaru/items/f13fe3e54fab01648ba4
Scala
https://qiita.com/takat0-h0rikosh1/items/8f4c3c7eb231f813d38a
https://hinastory.github.io/cats-cats-cats/2020/02/11/scala3_programming_category/
TypeScript
branded types
と同等
Flow
には
opaque
というキーワードがある
code:js
// @flow
export opaque type AccountNumber = number
export opaque type AccountBalance = number